import http from '../utils/request.js';
import config from '../utils/config.js';

// 购物车API服务
const cartApi = {
    /**
     * 获取购物车列表
     * @returns {Promise}
     */
    getCartList() {
        return http.get(config.API.cart.list);
    },
    
    /**
     * 添加商品到购物车
     * @param {Object} data - 购物车商品数据
     * @returns {Promise}
     */
    addToCart(data) {
        return http.post(config.API.cart.add, data);
    },
    
    /**
     * 从购物车中删除商品
     * @param {String|Number} id - 购物车商品ID
     * @returns {Promise}
     */
    removeFromCart(id) {
        return http.delete(`${config.API.cart.delete}/${id}`);
    },
    
    /**
     * 清空购物车
     * @returns {Promise}
     */
    clearCart() {
        return http.delete(config.API.cart.clear);
    },
    
    /**
     * 导出购物车为Excel文件
     * @param {Object} data - 包含要导出的购物车商品ID列表
     * @returns {Promise}
     */
    exportToExcel(data) {
        return http.post(config.API.cart.exportExcel, data);
    },
    
    /**
     * 创建购物车分享链接
     * @param {Object} data - 包含要分享的购物车商品ID列表
     * @returns {Promise}
     */
    createShareLink(data) {
        return http.post(config.API.cart.createShareLink, data);
    },
    
    /**
     * 提交购物车订单
     * @param {Object} data - 包含要下单的购物车商品ID列表和备注信息
     * @returns {Promise}
     */
    placeOrder(data) {
        return http.post(config.API.cart.placeOrder, data);
    },
    
    /**
     * 获取分享货盘的详细信息
     * @param {String} shareId - 分享ID
     * @returns {Promise}
     */
    getSharedCartDetails(shareId) {
        return http.get(`${config.API.cart.getSharedCart}/${shareId}`);
    },
    
    /**
     * 将分享货盘中的商品添加到自己的货盘
     * @param {Object} data - 包含分享ID
     * @returns {Promise}
     */
    addSharedItemsToCart(data) {
        return http.post(config.API.cart.addSharedItems, data);
    },
    
    /**
     * 从分享货盘直接下单
     * @param {Object} data - 包含分享ID和备注信息
     * @returns {Promise}
     */
    placeOrderFromShare(data) {
        return http.post(config.API.cart.placeOrderFromShare, data);
    }
};

export default cartApi; 